import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  build: {
    lib: {
      entry: resolve(__dirname, 'src/index.ts'),
      name: 'LokiLogViewer',
      fileName: (format) => `loki-log-viewer.${format}.js`,
    },
    rollupOptions: {
      // 确保外部化处理那些你不想打包进库的依赖
      external: ['vue', 'element-plus', '@element-plus/icons-vue'],
      output: {
        // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
        globals: {
          vue: 'Vue',
          'element-plus': 'ElementPlus',
          '@element-plus/icons-vue': 'ElementPlusIconsVue'
        },
        // 为CSS文件添加后缀
        assetFileNames: (assetInfo) => {
          if (assetInfo.name === 'style.css') return 'loki-log-viewer.css';
          return assetInfo.name;
        },
      },
    },
    // 确保CSS被提取到单独的文件中
    cssCodeSplit: true,
    // 生成sourcemap
    sourcemap: true,
    // 确保生成CSS文件
    emptyOutDir: true,
    // 指定输出目录
    outDir: 'dist',
  },
})